layui.use(['upload', 'form', 'layer', 'jquery'], function () {

    $ = layui.jquery;
    let form = layui.form,
        layer = layui.layer;
    let upload = layui.upload;
    let path = "";
    //常规使用 - 普通图片上传
    let uploadInst = upload.render({
        elem: '#file'
        , url: '/upload' //此处用的是第三方的 http 请求演示，实际使用时改成您自己的上传接口即可。
        , before: function (obj) {
            //预读本地文件示例，不支持ie8
            obj.preview(function (index, file, result) {
                $('#demo1').attr('src', result); //图片链接（base64）
            });
        }
        , done: function (res) {
            //console.log(res);
            path = res.data.src;

            //如果上传失败
            if (res.code > 0) {
                return layer.msg('上传失败');
            }
            //上传成功的一些操作
            //……
            $('#demoText').html(''); //置空上传失败的状态
        }
    });

    getTypeData();

    function getTypeData() {
        $.ajax({
            url: '/back/news/type/all',
            data: {isShow: 1,enable:1},
            async: false,
            type: 'get',
            dataType: 'json',
            success: function (res) {
                //console.log(res);
                setTypeData(res.data);
            }
        })

    }

    function setTypeData(data) {
        let str = "<option value=''>请选择新闻类型</option>";
        for (let i = 0; i < data.length; i++) {
            str += ' <option value="' + data[i].id + '">' + data[i].name + '</option>';
        }
        $("#typeId").html(str);
        form.render();
    }

    const E = window.wangEditor;
    const editor = new E('#content');
    const editUrl = '/upload';//服务器访问地址
    editor.customConfig.uploadImgShowBase64 = true;  // 使用 base64 保存图片
    editor.customConfig.uploadImgServer = editUrl; // 上传图片到服务器
    editor.customConfig.showLinkImg = false;// 隐藏“网络图片”tab
    //配置属性名称，绑定请求的图片数据
    editor.customConfig.uploadFileName = 'wangEditorUrl';
    editor.customConfig.withCredentials = true;
    // 将图片大小限制为 5M
    editor.customConfig.uploadImgMaxSize = 5 * 1024 * 1024;
    editor.customConfig.uploadImgHooks = {

        success: function (xhr, editor, result) {
            // 图片上传并返回结果，图片插入成功之后触发
            // xhr 是 XMLHttpRequst 对象，editor 是编辑器对象，result 是服务器端返回的结果
            //console.log(result);
        },
        // 如果服务器端返回的不是 {errno:0, data: [...]} 这种格式，可使用该配置
        // （但是，服务器端返回的必须是一个 JSON 格式字符串！！！否则会报错）
        customInsert: function (insertImg, result, editor) {
            // 图片上传并返回结果，自定义插入图片的事件（而不是编辑器自动插入图片！！！）
            // insertImg 是插入图片的函数，editor 是编辑器对象，result 是服务器端返回的结果

            // 举例：假如上传图片成功后，服务器端返回的是 {url:'....'} 这种格式，即可这样插入图片：
            let url = result.data.src;
            //console.log(url);
            insertImg(url)//回显到富文本里面
            // result 必须是一个 JSON 格式字符串！！！否则报错
        }
    };

    //富文本创建
    editor.create();

    //监听提交
    form.on('submit(add)',
        function (data) {
            data = data.field;
            data.imgHref = path;
            data.content = editor.txt.html();
            //console.log(data);
            //发异步，把数据提交给java
            $.ajax({
                url: '/back/news/add',
                data: data,
                type: 'post',
                dataType: 'json',
                success: function (res) {
                    if (res.count === 1) {
                        layer.alert("增加成功", {
                                icon: 6
                            },
                            function () {
                                //关闭当前frame
                                xadmin.close();

                                // 可以对父窗口进行刷新
                                xadmin.father_reload();
                            });
                    } else {
                        layer.alert("增加失败");
                    }
                }
            })
            return false;
        });
});